package cn.edu.util;

import cn.edu.entity.User;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 * UserUtil可以实现Dao层的快速调用数据库的数据
 */
public class UserUtil {
    //Object... objs  可变数组参数
    // 在一些不确定参数个数的传递方法,并且不能方法的重载来实现时,可以用可变数组参数
    //做为一个数组参数来定义方法.


    
    public static List<User> queryAll(String sql,Object... objs)throws Exception{
        List<User> list = new ArrayList<>();
        Connection conn = DBUtil.getConnection();
//        "select * from tb_user where name=? and password=?";
        PreparedStatement prestat = conn.prepareStatement(sql);
        for (int i = 0; i < objs.length; i++) {
            prestat.setObject(i+1,objs[i]);//eitity实体类定义数据,建议都是包装类.
        }
        ResultSet rs = prestat.executeQuery();
        while(rs.next()){
            User user = new User();
            user.setId((Integer) rs.getObject(1));
            user.setName((String) rs.getObject(2));
            user.setPassword((String) rs.getObject(3));
            list.add(user);
        }
        DBUtil.close(conn,prestat,rs);
        return list;
    }

}
